module Roda::RodaPlugins::Middleware::InstanceMethods

def _roda_run_main_route(r)

that the next middleware is called.
Override the route block so that if no route matches, we throw so
def _roda_run_main_route(r)
  res = super
  throw :next, true if r.forward_next
  res
end

def call(&block)

that the next middleware is called. Old Dispatch API.
Override the route block so that if no route matches, we throw so
def call(&block)
  super do |r|
    res = instance_exec(r, &block) # call Fallback
    throw :next, true if r.forward_next
    res
  end
end