def merge_flags(flags)
      flags.each_pair do |key, val|
        if self[key].is_a?(Array) and val.is_a?(Array)
          self[key] += val
        else
          self[key] = val
        end
      end
    end
def merge_flags(flags)
      flags.each_pair do |key, val|
        if self[key].is_a?(Array) and val.is_a?(Array)
          self[key] += val
        else
          self[key] = val
        end
      end
    end
Merge construction variable flags into this Environment's construction
 variables.

 This method does the same thing as {#append}, except that Array values in
 +flags+ are appended to the end of Array construction variables instead
 of replacing their contents.

 @param flags [Hash]
   Set of construction variables to merge into the current Environment.
   This can be the value (or a modified version) returned by
   {#parse_flags}.

 @return [void]