### 3.10.1 / 2020-12-27
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.10.0...v3.10.1)
Bug Fixes:
* Allow JRuby 9.2.x.x to generate backtraces normally rather than via our
backfill workaround. (#1230, Jon Rowe)
### 3.10.0 / 2020-10-30
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.3...v3.10.0)
Enhancements:
* Allow `include` matcher to be chained with `once`, `at_least`, etc. for simple cases.
(Marc-André Lafortune, #1168)
* Add an explicit warning when `nil` is passed to `raise_error`. (Phil Pirozhkov, #1143)
* Improve `include` matcher's composability. (Phil Pirozhkov, #1155)
* Mocks expectations can now set a custom failure message.
(Benoit Tigeot and Nicolas Zermati, #1156)
* `aggregate_failures` now shows the backtrace line for each failure. (Fabricio Bedin, #1163)
* Support multiple combinations of `yield_control` modifiers like `at_least`, `at_most`.
(Jon Rowe, #1169)
* Dynamic `have_<n>` matchers now have output consistent with other dynamic matchers.
(Marc-André Lafortune, #1195)
* New config option `strict_predicate_matchers` allows predicate matcher to be strict
(i.e. match for `true` or `false`) instead of the default (match truthy vs `false` or `nil`).
(Marc-André Lafortune, #1196)
### 3.9.4 / 2020-10-29
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.3...v3.9.4)
Bug Fixes:
* Fix regression with `be_` and `have_` matchers and arguments implementing `to_hash`
were they would act like keywords and be cast to a hash. (Jon Rowe, #1222)
### 3.9.3 / 2020-10-23
[Full Changelog](http://github.com/rspec/rspec-expectations/compare/v3.9.2...v3.9.3)
Bug Fixes:
* Swap the comparison of the delta vs the expected for the `be_within` matcher allowing
more complicated oobjects to be compared providing they provide `abs` and other
comparison methods. (Kelly Stannard, #1182)
* Properly format expected in the description of the `be_within` matcher. (Jon Rowe, #1185)
* Remove warning when using keyword arguments with `be_` and `have_` matchers on 2.7.x
(Jon Rowe, #1187)
* Prevent formatting a single hash as a list of key value pairs in default failure messages
for custom matches (fixes formatting in `EnglishPhrasing#list`). (Robert Eshleman, #1193)
* Prevent errors from causing false positives when using `be <operator>` comparison, e.g.
`expect(1).not_to be < 'a'` will now correctly fail rather than pass. (Jon Rowe, #1208)