 ;; up the actual handler using the keyword and the handlers map. The
 ;; keyword can then be used as the target in a call to
 ;; bidi.bidi/path-for, rather than the handler itself.
-(defrecord KeywordIndirection [matched ckey handlers]
+(defrecord KeywordIndirection [matched ckey handlers add-exception-context?]
   bidi/Matched
   (resolve-handler [this m]
     (when-let [{:keys [handler] :as res} (bidi/resolve-handler matched m)]

                            ;; We wrap in some bidi middleware which
                            ;; allows us to form URIs via a
                            ;; keyword-path: [component-key handler-key]
                            (->KeywordIndirection [(routes v)] ckey handlers)]))])))
  (stop [this] this)

  WebService

  [& {:as opts}]
  (->> opts
    (merge {:uri-context ""
            :add-exception-context? false
            :not-found-handler (constantly {:status 404 :body "Not found"})})
       (s/validate new-router-schema)
       map->Router))
