<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_model(self, model_id, properties, parameters, outputs, connector):
 """Register a new model with the engine. Expects connection information for RabbitMQ to submit model run requests to workers. Raises ValueError if the given model identifier is not unique. Parameters model_id : string Unique model identifier properties : Dictionary Dictionary of model specific properties. parameters : list(scodata.attribute.AttributeDefinition) List of attribute definitions for model run parameters outputs : ModelOutputs Description of model outputs connector : dict Connection information to communicate with model workers. Expected to contain at least the connector name 'connector'. Returns ------- ModelHandle """

        # Validate the given connector information
        self.validate_connector(connector)
        # Connector information is valid. Ok to register the model. Will raise
        # ValueError if model with given identifier exists. Catch duplicate
        # key error to transform it into a ValueError
        try:
            return self.registry.register_model(
                model_id,
                properties,
                parameters,
                outputs,
                connector
            )
        except DuplicateKeyError as ex:
            raise ValueError(str(ex))