(defun match-url-handlers (request-url url-handlers)
;; if no match, returns nil, which is the same as (values nil nil),
;; so it works just fine for acond2 in `match-url-dispatch'.
(loop
for url-handler in url-handlers
for (match args) = (multiple-value-list (scan-to-strings (url-regex url-handler) request-url))
when match do (return (values (apply-url-handler url-handler args) t))))Source Context