/**
  * Substitute defined variables, if any found and return the new configuration object
  *
  * @param Config $config
  * @param string $prefix
  * @param string $suffix
  * @return Config
  */
 protected function substituteVars(Config $config, $prefix = '{', $suffix = '}')
 {
     $arrayConfig = $config->toArray();
     if (isset($arrayConfig['variables'])) {
         $vars = array_map(function ($x) use($prefix, $suffix) {
             return $prefix . $x . $suffix;
         }, array_keys($arrayConfig['variables']));
         $vals = array_values($arrayConfig['variables']);
         $tokens = array_combine($vars, $vals);
         $processor = new Token();
         $processor->setTokens($tokens);
         $processor->process($config);
         // Remove variables node
         unset($config->variables);
     }
     return $config;
 }