If the match fails it would get called twice if not for the memoization: once from `matches?` and again from `failure_message` via `validity_message` (which in turn calls `uniq_truthy_values`).