better route matching