   (:require [clojure.core.match :refer [match]]
             [clojure.string :as string]
             [clojure.pprint :as pp]
+            [clojure.set :as set]
             [io.aviso.rook :as rook]
             [io.aviso.rook.async :as rook-async]
             [io.aviso.rook.internals :as internals]

      (rook-async/ring-handler->async-handler handler)
      handler)))

(defn compile-dispatch-table
  "Compiles the dispatch table into a Ring handler.


  ([ns-sym]
     (namespace-dispatch-table [] ns-sym))
  ([context-pathvec ns-sym]
     (namespace-dispatch-table context-pathvec ns-sym `default-middleware))
  ([context-pathvec ns-sym middleware]
     (try
       (if-not (find-ns ns-sym)
