def register_validator(name, parse_function):
name = name.lower()<EOL>if name in VALIDATORS:<EOL><INDENT>raise Exception("<STR_LIT>".format(name))<EOL><DEDENT>VALIDATORS[name] = parse_function<EOL>
Registers a validator for use by this library
        Name is the string name for validator

        Parse function does parse(config_node) and returns a Validator object
        Validator functions have signature:
            validate(response_body, context=None) - context is a bindings.Context object

        Validators return true or false and optionally can return a Failure instead of false
        This allows for passing more details