change order of matches so they are outside-first-inside-last
rearrange method order
add pass() and fail() to keep score
reset failure each time
retain closest matching route for later use