I like the explicit intent this expresses. I did notice that defines [`BaseMatcher#==`](https://github.com/rspec/rspec-expectations/blob/master/lib/rspec/matchers/built_in/base_matcher.rb#L56) as another way to call `matches?`. This is used in the [`yield`](https://github.com/rspec/rspec-expectations/blob/master/lib/rspec/matchers/built_in/yield.rb#L248) matchers to check arguments.

Thoughts on that alternative? Or adding the `|| expected == actual` to the `else` clause?

Or maybe mirror this more intent revealing change there?