original_string: protected function processCustom(): bool
      {
          $uri = '/' . $this->getCleanUri();
          foreach ($this->routers as $router) {
              if (preg_match($router['pattern'], $uri, $matches)) {
                  $this->setParam('_module', $router['module']);
                  $this->setParam('_controller', $router['controller']);
  
                  foreach ($router['params'] as $param => $type) {
                      if (isset($matches[$param])) {
                          $this->setParam($param, $matches[$param]);
                      }
                  }
                  return true;
              }
          }
          return false;
      }
code: protected function processCustom(): bool
      {
          $uri = '/' . $this->getCleanUri();
          foreach ($this->routers as $router) {
              if (preg_match($router['pattern'], $uri, $matches)) {
                  $this->setParam('_module', $router['module']);
                  $this->setParam('_controller', $router['controller']);
  
                  foreach ($router['params'] as $param => $type) {
                      if (isset($matches[$param])) {
                          $this->setParam($param, $matches[$param]);
                      }
                  }
                  return true;
              }
          }
          return false;
      }
code_tokens: protected function processCustom ( ) : bool { $ uri = '/' . $ this -> getCleanUri ( ) ; foreach ( $ this -> routers as $ router ) { if ( preg_match ( $ router [ 'pattern' ] , $ uri , $ matches ) ) { $ this -> setParam ( '_module' , $ router [ 'module' ] ) ; $ this -> setParam ( '_controller' , $ router [ 'controller' ] ) ; foreach ( $ router [ 'params' ] as $ param => $ type ) { if ( isset ( $ matches [ $ param ] ) ) { $ this -> setParam ( $ param , $ matches [ $ param ] ) ; } } return true ; } } return false ; }
docstring: Process custom router
  
  @return bool
docstring_tokens: Process custom router