I would make `subject` generally available throughout the class instead of passing it around. If you look at some of the other matchers, we typically do something like:

```ruby
def matches?(subject)
  @subject = subject
  ...the actual check...
end
```

And if you do `attr_reader :subject` under `private` below, then we can avoid having to change all the `subject`s into `@subject`s (amongst other benefits of using attr_reader).