'Register an extension
:param str entry_point: extension to register (entry point syntax).
:raise: ValueError if already registered.'

def register(self, entry_point):

    if (entry_point in self.registered_extensions):
        raise ValueError('Extension    already    registered')
    ep = EntryPoint.parse(entry_point)
    if (ep.name in self.names()):
        raise ValueError('An    extension    with    the    same    name    already    exist')
    ext = self._load_one_plugin(ep, False, (), {}, False)
    self.extensions.append(ext)
    if (self._extensions_by_name is not None):
        self._extensions_by_name[ext.name] = ext
    self.registered_extensions.insert(0, entry_point)
