'Add a new kind of dialect-specific keyword argument for this class.
E.g.::
Index.argument_for("mydialect", "length", None)
some_index = Index(\'a\', \'b\', mydialect_length=5)
The :meth:`.DialectKWArgs.argument_for` method is a per-argument
way adding extra arguments to the :attr:`.DefaultDialect.construct_arguments`
dictionary. This dictionary provides a list of argument names accepted by
various schema-level constructs on behalf of a dialect.
New dialects should typically specify this dictionary all at once as a data
member of the dialect class.  The use case for ad-hoc addition of
argument names is typically for end-user code that is also using
a custom compilation scheme which consumes the additional arguments.
:param dialect_name: name of a dialect.  The dialect must be locatable,
else a :class:`.NoSuchModuleError` is raised.   The dialect must
also include an existing :attr:`.DefaultDialect.construct_arguments` collection,
indicating that it participates in the keyword-argument validation and
default system, else :class:`.ArgumentError` is raised.
If the dialect does not include this collection, then any keyword argument
can be specified on behalf of this dialect already.  All dialects
packaged within SQLAlchemy include this collection, however for third
party dialects, support may vary.
:param argument_name: name of the parameter.
:param default: default value of the parameter.
.. versionadded:: 0.9.4'

@classmethod
def argument_for(cls, dialect_name, argument_name, default):

    construct_arg_dictionary = DialectKWArgs._kw_registry[dialect_name]
    if (construct_arg_dictionary is None):
        raise exc.ArgumentError(("Dialect    '%s'    does    have    keyword-argument    validation    and    defaults    enabled    configured" % dialect_name))
    construct_arg_dictionary[cls][argument_name] = default
