Iterating over your routes array on every lookup does not seem very efficient, seems like it would add quite a bit of overhead vs just a hash lookup. This lib is so small its easy to see just how route look-ups are done. I've never really dug into any other router to see how route matching is done. I would assume a hash lookup would be the fastest?