def update(map)
      map.to_h.each_pair do |input, output|
        input  = Mustermann.new(input, **@options)
        output = Expander.new(*output, additional_values: @additional_values, **@options) unless output.is_a? Expander
        @map << [input, output]
      end
    end
def update(map)
      map.to_h.each_pair do |input, output|
        input  = Mustermann.new(input, **@options)
        output = Expander.new(*output, additional_values: @additional_values, **@options) unless output.is_a? Expander
        @map << [input, output]
      end
    end
Creates a new mapper.

 @overload initialize(**options)
   @param options [Hash] options The options hash
   @yield block for generating mappings as a hash
   @yieldreturn [Hash] see {#update}

   @example
     require 'mustermann/mapper'
     Mustermann::Mapper.new(type: :rails) {{
       "/:foo" => ["/:foo.html", "/:foo.:format"]
     }}

 @overload initialize(**options)
   @param  options [Hash] options The options hash
   @yield block for generating mappings as a hash
   @yieldparam mapper [Mustermann::Mapper] the mapper instance

   @example
     require 'mustermann/mapper'
     Mustermann::Mapper.new(type: :rails) do |mapper|
       mapper["/:foo"] = ["/:foo.html", "/:foo.:format"]
     end

 @overload initialize(map = {}, **options)
   @param map [Hash] see {#update}
   @param [Hash] options The options hash

   @example map before options
     require 'mustermann/mapper'
     Mustermann::Mapper.new("/:foo" => "/:foo.html", type: :rails)

   @example map after options
     require 'mustermann/mapper'
     Mustermann::Mapper.new(type: :rails, "/:foo" => "/:foo.html")
 Add multiple mappings.

 @param map [Hash{String, Pattern: String, Pattern, Arry<String, Pattern>, Expander}] the mapping