def partial_expand(mapping, processor=nil, normalize_values=true)
      result = self.pattern.dup
      mapping = normalize_keys(mapping)
      result.gsub!( EXPRESSION ) do |capture|
        transform_partial_capture(mapping, capture, processor, normalize_values)
      end
      return Addressable::Template.new(result)
    end
def partial_expand(mapping, processor=nil, normalize_values=true)
      result = self.pattern.dup
      mapping = normalize_keys(mapping)
      result.gsub!( EXPRESSION ) do |capture|
        transform_partial_capture(mapping, capture, processor, normalize_values)
      end
      return Addressable::Template.new(result)
    end
Expands a URI template into another URI template.

 @param [Hash] mapping The mapping that corresponds to the pattern.
 @param [#validate, #transform] processor
   An optional processor object may be supplied.
 @param [Boolean] normalize_values
   Optional flag to enable/disable unicode normalization. Default: true

 The object should respond to either the <tt>validate</tt> or
 <tt>transform</tt> messages or both. Both the <tt>validate</tt> and
 <tt>transform</tt> methods should take two parameters: <tt>name</tt> and
 <tt>value</tt>. The <tt>validate</tt> method should return <tt>true</tt>
 or <tt>false</tt>; <tt>true</tt> if the value of the variable is valid,
 <tt>false</tt> otherwise. An <tt>InvalidTemplateValueError</tt>
 exception will be raised if the value is invalid. The <tt>transform</tt>
 method should return the transformed variable value as a <tt>String</tt>.
 If a <tt>transform</tt> method is used, the value will not be percent
 encoded automatically. Unicode normalization will be performed both
 before and after sending the value to the transform method.

 @return [Addressable::Template] The partially expanded URI template.

 @example
   Addressable::Template.new(
     "http://example.com/{one}/{two}/"
   ).partial_expand({"one" => "1"}).pattern
   #=> "http://example.com/1/{two}/"

   Addressable::Template.new(
     "http://example.com/{?one,two}/"
   ).partial_expand({"one" => "1"}).pattern
   #=> "http://example.com/?one=1{&two}/"

   Addressable::Template.new(
     "http://example.com/{?one,two,three}/"
   ).partial_expand({"one" => "1", "three" => 3}).pattern
   #=> "http://example.com/?one=1{&two}&three=3"