(map (lambda(def) (let* ((synt-sug-form? (list? (proc-name-sexp def))) (proc-name (if synt-sug-form? (ss-proc-name def) (values (lambda-proc-name def)))) (params-list (if synt-sug-form? (ss-params-list def) (lambda-params-list def))) (tmp-proc-body-list (if synt-sug-form? (ss-body-list def) (lambda-body-list def))) (keywords-list (get-keywords-list def)) (proc-body-list (filter-keywords tmp-proc-body-list keywords-list)) (page-path (if (eq? proc-name 'index) (conc "/" 'name) (conc "/" 'name "/" proc-name)))) (eval `(define-page (irregex '(seq ,page-path (* "/" ,(regex)))) (lambda (path) (let ((path (process-path path))) (apply (lambda ,params-list ,@proc-body-list) (process-url-args path ,page-path ',params-list)))) ,@keywords-list)))) 'body)