def METHOD_NAME(self, config, route=None, extra_args=None,
                 replace_map=None, bg_mcrouter=False, replace_ports=True,
                 flavor=None, sr_mock_smc_config=None, base_dir=None):
    self.ensureClassVariables()
    substitute_ports = None
    if replace_ports:
        substitute_ports = (self.open_ports
                            if 'port_map' not in self.__dict__
                            else self.port_map)
    mcrouter = Mcrouter(config,
                        substitute_config_ports=substitute_ports,
                        substitute_config_smc_ports=self.open_ports_sr,
                        default_route=route,
                        extra_args=extra_args,
                        replace_map=replace_map,
                        flavor=flavor,
                        sr_mock_smc_config=sr_mock_smc_config,
                        base_dir=base_dir)
    mcrouter.ensure_connected()
    if bg_mcrouter:
        self.open_ports.append(mcrouter.getport())
    if 'open_mcrouters' not in self.__dict__:
        self.open_mcrouters = []
    self.open_mcrouters.append(mcrouter)
    return mcrouter