def add(self, key, val):
key_lower = key.lower()<EOL>new_vals = key, val<EOL>vals = self._container.setdefault(key_lower, new_vals)<EOL>if new_vals is not vals:<EOL><INDENT>if isinstance(vals, list):<EOL><INDENT>vals.append(val)<EOL><DEDENT>else:<EOL><INDENT>self._container[key_lower] = [vals[<NUM_LIT:0>], vals[<NUM_LIT:1>], val]<EOL><DEDENT><DEDENT>
Adds a (name, value) pair, doesn't overwrite the value if it already
exists.

Usage::

    headers = HTTPHeaderDict(foo='bar')
    headers.add('Foo', 'baz')
    headers['foo']
    > 'bar, baz'