def prepare_middleware(&context_definition)
      last_middleware = AllImportantMiddleware.new(&context_definition)
      Context.middlewares.inject(last_middleware) do |previous_middleware, middleware|
        middleware.new(previous_middleware)
      end.call(self)
    end
Iterate over the registered middlewares and let them configure this context instance if they so
choose. {Riot::AllImportantMiddleware} will always be the last in the chain.