original_string: public function filter(callable $filter, callable $controller)
      {
          $pattern = $this->getFrontController()->addController(':all', $controller)->getPattern();
          $pattern->addFilter($filter);
          return new IRoutePatternSetterAdapter($pattern);
      }
code: public function filter(callable $filter, callable $controller)
      {
          $pattern = $this->getFrontController()->addController(':all', $controller)->getPattern();
          $pattern->addFilter($filter);
          return new IRoutePatternSetterAdapter($pattern);
      }
code_tokens: public function filter ( callable $ filter , callable $ controller ) { $ pattern = $ this -> getFrontController ( ) -> addController ( ':all' , $ controller ) -> getPattern ( ) ; $ pattern -> addFilter ( $ filter ) ; return new IRoutePatternSetterAdapter ( $ pattern ) ; }
docstring: Adds a controller with a special filter.
  This filter receive the current Request as first param.
  
  @param callable $filter
  @param callable $controller
  @return IRoutePatternSetter
docstring_tokens: Adds a controller with a special filter . This filter receive the current Request as first param .