    :path   path
    :meta   endpoint-meta})
 
+(defn- expand-method-all
+  [{:keys [method] :as routing-entry}]
+  (if-not (= :all method)
+    [routing-entry]
+    (for [m dispatcher/supported-methods]
+      (assoc routing-entry :method m))))
+
 (defn default-configurer
   "The configurer is passed the final swagger object and can make final changes to it. This implementation
   does nothing, returning the swagger object unchanged."

   s/Uuid  {:type :string :format :uuid}})

(def default-swagger-options
  {:template                  default-swagger-template
   ;; Name of special parameter used for the body of the request
   :body-name                 :body
   :routing-entry-filter      (constantly false)
   :route-injector            default-route-injector
   :configurer                default-configurer
   :data-type-mappings        default-data-type-mappings
   :path-item-object-injector default-path-item-object-injector
   :path-params-injector      default-path-params-injector
   :query-params-injector     default-query-params-injector
   :body-params-injector      default-body-params-injector
   :responses-injector        default-responses-injector})

(defn construct-swagger-object
  "Constructs the root Swagger object from the Rook options, swagger options, and the routing table

  [swagger-options routing-table]
  (t/track
    "Constructing Swagger API Description."
    (let [{:keys [template route-injector configurer routing-entry-remove-predicate]} swagger-options
          routing-entries (->> routing-table
                               (map routing-entry->map)
                               ;; Endpoints with the :no-swagger meta data are ignored.
                               (remove #(-> % :meta :no-swagger))
                               ;; Each :all is expanded to every supported method ...
                               (mapcat expand-method-all)
                               ;; So this becomes pretty important.
                               (remove routing-entry-remove-predicate))]
      (as-> (reduce (partial route-injector swagger-options) template routing-entries) %
            (configurer swagger-options % routing-entries)))))
