                           apply-middleware req handler-sym handler-map)])
                handlers)]
        (fn rook-pattern-matching-dispatcher# [~req]
-         (match (preparse-request ~req)
+         (match (request-route-spec ~req)
            ~@(mapcat (fn [[route-spec handler-sym]]
                        (let [{:keys [route-params schema]}
                              (get handlers handler-sym)]

         (ns-unmap *ns* '~tmp)
         (fn rook-map-traversal-dispatcher# [~req]
           [dispatch-map# endpoint-fns#]
           (loop [pathvec#      (second (preparse-request ~req))
                  dispatch#     dispatch-map#
                  route-params# {}]
             (if-let [seg# (first pathvec#)]

                                                  `apply-middleware-sync)]
       (emit-fn
         `(fn rook-dispatcher# [~req]
            (match (request-route-spec ~req)
              ~@(mapcat
                  (fn [[method pathvec verb-fn-sym middleware]]
                    (let [method           (if (identical? method :all)
