refactor route-matching strategies