         ]
     `(defrule ~rname
        [~reqsym ~'<- PendingMessage (= ~*route* ~'route) (contains? ~prev-comps ~'comp)]
-       [:not [AbortRoute (or (nil? ~'route) (= ~*route* ~'route))]]
+       [:not [Abort (or (nil? ~'route) (= ~*route* ~'route))]]
        ~'=>
        (debug ~logmsg)
        (insert! (map->RoutedMessage (assoc ~reqsym :comp ~(if (fn? next-comp)

        reqsym (gensym "?req-")
        keysym (symbol (name key))]
    `(defrule ~rname
       [~reqsym ~'<- PendingMessage [{:keys [~'route ~keysym]}] ~@(when *route* `[(= ~*route* ~'route)]) (not (nil? ~keysym))]
       ~'=>
       (debug ~logmsg)
       ~@(when abort-route?
           `[(insert! (->AbortRoute ~*route*))])
       (insert! (map->RoutedMessage (assoc ~reqsym :comp ~next-comp))))))

(defn process [this req]


(defrecord PendingMessage [route comp])
(defrecord RoutedMessage [route comp])
(defrecord Abort [route])

(defn- concat-symbols [prefix & syms]
  (letfn [(sym-to-str [s]
