   "Define a Ring handler function from a sequence of routes. The name may
   optionally be followed by a doc-string and metadata map."
   [name & routes]
-  (let [[name routes] (name-with-attributes name routes)]
+  (let [[name routes] (macro/name-with-attributes name routes)]
    `(def ~name (routes ~@routes))))
 
 (defmacro GET "Generate a GET route."


(defn- if-context [route handler]
  (fn [request]
    (if-let [params (route-matches route request)]
      (let [uri     (:uri request)
            path    (:path-info request uri)
            context (or (:context request) "")

  "Evaluate the handler if the route matches the request."
  [route handler]
  (fn [request]
    (if-let [params (clout/route-matches route request)]
      (handler (assoc-route-params request (decode-route-params params))))))

(defn- prepare-route
