class Sinatra::Base

def compile!(verb, path, block, **options)

def compile!(verb, path, block, **options)
  # Because of self.options.host
  host_name(options.delete(:host)) if options.key?(:host)
  # Pass Mustermann opts to compile()
  route_mustermann_opts = options.key?(:mustermann_opts) ? options.delete(:mustermann_opts) : {}.freeze
  options.each_pair { |option, args| send(option, *args) }
  pattern                 = compile(path, route_mustermann_opts)
  method_name             = "#{verb} #{path}"
  unbound_method          = generate_method(method_name, &block)
  conditions, @conditions = @conditions, []
  wrapper                 = block.arity != 0 ?
    proc { |a, p| unbound_method.bind(a).call(*p) } :
    proc { |a, p| unbound_method.bind(a).call }
  [ pattern, conditions, wrapper ]
end