'Return an iterator of ``(key, value)`` pairs.
:param multi: If set to `True` the iterator returned will have a pair
for each value of each key.  Otherwise it will only
contain pairs for the first value of each key.'

def items(self, multi=False):

    for (key, values) in iteritems(dict, self):
        if multi:
            for value in values:
                (yield (key, value))
        else:
            (yield (key, values[0]))
