<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def register(cls, name: str, plugin: Type[ConnectionPlugin]) -> None: """Registers a connection plugin with a specified name Args: name: name of the connection plugin to register plugin: defined connection plugin class Raises: :obj:`nornir.core.exceptions.ConnectionPluginAlreadyRegistered` if another plugin with the specified name was already registered """

        existing_plugin = cls.available.get(name)
        if existing_plugin is None:
            cls.available[name] = plugin
        elif existing_plugin != plugin:
            raise ConnectionPluginAlreadyRegistered(
                f"Connection plugin {plugin.__name__} can't be registered as "
                f"{name!r} because plugin {existing_plugin.__name__} "
                f"was already registered under this name"
            )