This is calling `prevent_invalid_expectations` _every_ time we try to match, even for the positive case.  Instead, I think it's better to move this call into `does_not_match?`, as the first line of that method.  That method is called every time a negative expectation is set.

Then you wouldn't have to pass the `negative_expectation` arg, either.