I was thinking of using flatten, but perhaps some users may not want it flattened:

    for f, v in values.iteritems():
        self.add_value(f, flatten(arg_to_iter(v)))