             (async/>! (:async-response req) shed-response)))))
     req-chan))
 
+(defn- strip-guard-prefix [path guard]
+  (when path
+    (let [suffix (.substring ^String path (count guard))]
+      (when-not (empty? suffix) suffix))))
+
 (defn route-concurrently-
   [pairs]
   (let [req-chan (async/chan)]

              [guard fwd] (some (fn [[^String guard :as pair]]
                                  (when (.startsWith (:uri req "") guard)
                                    pair))
                                pairs)
              uri-suffix (.substring ^String (:uri req) (count guard))
              uri-suffix (if (= uri-suffix "")
                           "/"
                           uri-suffix)]
          (async/>! fwd (assoc req :uri uri-suffix)))))
    req-chan))

(defmacro route-concurrently

(ns spiral.experimental
  "This namespace contains experimental spiral functionality.

   work-shed is an async middle that automatically returns short, precomputed responses to clients when the server gets overloaded.

   route-concurrently is a simple async routing macro that provides a way to expose concurrency between different routes. Beauty will probably replace it wholesale.
   "
  (:require [clojure.core.async :as async]))
