pat: unwind more premature optimizations
pat: unwind more premature optimizations

This one is a kind of unfortunate tradeoff to have to make. Upshot is
that it reduces runtime in the general case by a pretty hefty margin.
Downside is that this greatly increases Goji's memory usage under
certain adversarial situations, where Goji is forced to attempt a large
number of non-matching patterns per matching one (e.g., if there are a
large number of routes which share a prefix/method).

Based on how I expect most people to use the library I think the
tradeoff is worth it, but if the increased variance ever becomes an
issue in practice we'll have to reconsider.

goji/goji