Should `throw` if no match?