public function __construct(ContainerInterface $container = null, Config $config = null, RouteParser $parser = null, DataGenerator $generator = null)
{
$this->container = $container instanceof ContainerInterface ? $container : new Container();
$this->config = $config instanceof Config ? $config : [];
// build parent route collector
$parser = $parser instanceof RouteParser ? $parser : new StdRouteParser();
$generator = $generator instanceof DataGenerator ? $generator : new GroupCountBasedDataGenerator();
parent::__construct($parser, $generator);
}