route matching logic changed (lookup first then exec approach)