This struct should contain everything we talked about, but I'm not sure if there was any more functionality you wanted to add to it.  Also, I couldn't think of a better name than "MatchError".