anchor.diff:  
   (defmethod process-route/impl ((route simple-route) bindings)
     (let ((*bindings* bindings))
  -    (funcall (slot-value route 'symbol))))
  +    (funcall (route-render-method route)
  +             (funcall (slot-value route 'symbol)))))
   
  -(defmacro define-route (name 
  -                        (template &key (content-type "text/html") (method :get) requirement parse-vars)
  +(defmacro define-route (name (template &key
  +                                       (content-type "text/html") 
  +                                       (method :get)
  +                                       render-method
  +                                       requirement
  +                                       parse-vars)
                           &body body)
     (let* ((variables (iter (for var in (routes.unify:template-variables (routes:parse-template template)))
                             (collect (list (intern (symbol-name var))
  
positive.code:                    :method ,method
                     :content-type ,content-type
                     :parse-vars ,parse-vars
                     :requirement ,requirement))
         (intern (symbol-name ',name)
                 (symbol-value (find-symbol +routes-symbol+)))
         (export ',name)
  
negative.code:   ((submodule :initarg :submodule :initform nil)
     (content-type :initarg :content-type :initform nil :reader route-content-type)
     (required-method :initarg :required-method :initform nil :reader route-required-method)
     (arbitrary-requirement :initarg :arbitrary-requirement :initform nil :reader route-arbitrary-requirement)
     (render-method :initarg :render-method :initform #'identity :reader route-render-method)))
  
  (defmethod routes:route-check-conditions ((route base-route) bindings)
    (with-context (slot-value (slot-value route 'submodule)
  