':param value: validator name, instance or function that returns an instance, which validates the given `key`
:param string key: The dictionary key to accept
:param bool required: = Mark this `key` as required
:raises ValueError: `key` was not specified'

def accept(self, value, key=None, required=False, **kwargs):

    if (not key):
        raise ValueError((u'%s.accept()    must    specify    key' % self.name))
    if required:
        self.require_key(key)
    v = self.get_validator(value, **kwargs)
    self.valid.setdefault(key, []).append(v)
    return v
