original_string: public function route()
      {
          $this->app->page_orig = $this->app->page;
  
          foreach ($this->links as $page => $args) {
              $page = str_replace('/', '_', $page);
  
              // Exact match, no more routing needed
              if ($this->app->page == $page) {
                  return $this;
              }
  
              $page .= '_';
  
              if (substr($this->app->page, 0, strlen($page)) == $page) {
                  $rest = explode('_', substr($this->app->page, strlen($page)));
  
                  reset($args);
                  foreach ($rest as $arg) {
                      list($key, $match) = @each($args);
                      if (is_numeric($key) || is_null($key)) {
                          $key = $match;
                      } else {
                          if (!preg_match($match, $arg)) {
                              break 2;
                          }
                      }
                      $_GET[$key] = $arg;
                  }
  
                  $this->app->page = substr($page, 0, -1);
  
                  return $this;
              }
  
              //$misc=explode()$this->app->page = substr
          }
  
          $r = $_SERVER['REQUEST_URI'];
          foreach ($this->rules as $rule) {
              if (preg_match('/'.$rule[0].'/', $r, $t)) {
                  $this->app->page = $rule[1];
                  if ($rule[2]) {
                      foreach ($rule[2] as $k => $v) {
                          $_GET[$v] = $t[$k + 1];
                      }
                  }
              }
          }
      }
code: public function route()
      {
          $this->app->page_orig = $this->app->page;
  
          foreach ($this->links as $page => $args) {
              $page = str_replace('/', '_', $page);
  
              // Exact match, no more routing needed
              if ($this->app->page == $page) {
                  return $this;
              }
  
              $page .= '_';
  
              if (substr($this->app->page, 0, strlen($page)) == $page) {
                  $rest = explode('_', substr($this->app->page, strlen($page)));
  
                  reset($args);
                  foreach ($rest as $arg) {
                      list($key, $match) = @each($args);
                      if (is_numeric($key) || is_null($key)) {
                          $key = $match;
                      } else {
                          if (!preg_match($match, $arg)) {
                              break 2;
                          }
                      }
                      $_GET[$key] = $arg;
                  }
  
                  $this->app->page = substr($page, 0, -1);
  
                  return $this;
              }
  
              //$misc=explode()$this->app->page = substr
          }
  
          $r = $_SERVER['REQUEST_URI'];
          foreach ($this->rules as $rule) {
              if (preg_match('/'.$rule[0].'/', $r, $t)) {
                  $this->app->page = $rule[1];
                  if ($rule[2]) {
                      foreach ($rule[2] as $k => $v) {
                          $_GET[$v] = $t[$k + 1];
                      }
                  }
              }
          }
      }
code_tokens: public function route ( ) { $ this -> app -> page_orig = $ this -> app -> page ; foreach ( $ this -> links as $ page => $ args ) { $ page = str_replace ( '/' , '_' , $ page ) ; // Exact match, no more routing needed if ( $ this -> app -> page == $ page ) { return $ this ; } $ page .= '_' ; if ( substr ( $ this -> app -> page , 0 , strlen ( $ page ) ) == $ page ) { $ rest = explode ( '_' , substr ( $ this -> app -> page , strlen ( $ page ) ) ) ; reset ( $ args ) ; foreach ( $ rest as $ arg ) { list ( $ key , $ match ) = @ each ( $ args ) ; if ( is_numeric ( $ key ) || is_null ( $ key ) ) { $ key = $ match ; } else { if ( ! preg_match ( $ match , $ arg ) ) { break 2 ; } } $ _GET [ $ key ] = $ arg ; } $ this -> app -> page = substr ( $ page , 0 , - 1 ) ; return $ this ; } //$misc=explode()$this->app->page = substr } $ r = $ _SERVER [ 'REQUEST_URI' ] ; foreach ( $ this -> rules as $ rule ) { if ( preg_match ( '/' . $ rule [ 0 ] . '/' , $ r , $ t ) ) { $ this -> app -> page = $ rule [ 1 ] ; if ( $ rule [ 2 ] ) { foreach ( $ rule [ 2 ] as $ k => $ v ) { $ _GET [ $ v ] = $ t [ $ k + 1 ] ; } } } } }
docstring: Perform the necessary changes in the APP's page. After this
  you can still get the orginal page in app->page_orig.
docstring_tokens: Perform the necessary changes in the APP s page . After this you can still get the orginal page in app - > page_orig .