abstraction route matcher and bug fix