Maybe we can split out the code for the two different versions into named methods or something? Or even push them into separate objects that implement respective `doesRecipientMatch` methods, and just let the main method be a kind of dispatcher?

I'm envisioning that this method will get very large if/when we have a 1.5 spec, and a 2.0 spec, and 3.0, etc.