'Register an alias to a magic function.
The alias is an instance of :class:`MagicAlias`, which holds the
name and kind of the magic it should call. Binding is done at
call time, so if the underlying magic function is changed the alias
will call the new function.
Parameters
alias_name : str
The name of the magic to be registered.
magic_name : str
The name of an existing magic.
magic_kind : str
Kind of magic, one of \'line\' or \'cell\''

def register_alias(self, alias_name, magic_name, magic_kind='line', magic_params=None):

    if (magic_kind not in magic_kinds):
        raise ValueError(('magic_kind    must    be    one    of    %s,    %s    given' % magic_kinds), magic_kind)
    alias = MagicAlias(self.shell, magic_name, magic_kind, magic_params)
    setattr(self.user_magics, alias_name, alias)
    record_magic(self.magics, magic_kind, alias_name, alias)
