original_string: protected function getPathsRecursion(Vertex $start, DirectedEdge $edge)
      {
          // We don't want to visit the same vertex twice within a single path. (avoid loops)
          if (in_array($start->get_data(), $this->current_path)) {
              $this->paths[] = array_reverse($this->current_path);
  
              return;
          }
  
          $this->current_path[] = $start->get_data();
  
          if ($start->incoming_edges->count() == 0) {
              $this->paths[] = array_reverse($this->current_path);
  
              return;
          }
  
          /**
           * @var DirectedEdge
           */
          foreach ($start->incoming_edges as $edge) {
              $this->getPathsRecursion($edge->get_source(), $edge);
  
              //remove the item that was added by the child
              array_pop($this->current_path);
          }
      }
code: protected function getPathsRecursion(Vertex $start, DirectedEdge $edge)
      {
          // We don't want to visit the same vertex twice within a single path. (avoid loops)
          if (in_array($start->get_data(), $this->current_path)) {
              $this->paths[] = array_reverse($this->current_path);
  
              return;
          }
  
          $this->current_path[] = $start->get_data();
  
          if ($start->incoming_edges->count() == 0) {
              $this->paths[] = array_reverse($this->current_path);
  
              return;
          }
  
          /**
           * @var DirectedEdge
           */
          foreach ($start->incoming_edges as $edge) {
              $this->getPathsRecursion($edge->get_source(), $edge);
  
              //remove the item that was added by the child
              array_pop($this->current_path);
          }
      }
code_tokens: protected function getPathsRecursion ( Vertex $ start , DirectedEdge $ edge ) { // We don't want to visit the same vertex twice within a single path. (avoid loops) if ( in_array ( $ start -> get_data ( ) , $ this -> current_path ) ) { $ this -> paths [ ] = array_reverse ( $ this -> current_path ) ; return ; } $ this -> current_path [ ] = $ start -> get_data ( ) ; if ( $ start -> incoming_edges -> count ( ) == 0 ) { $ this -> paths [ ] = array_reverse ( $ this -> current_path ) ; return ; } /**
           * @var DirectedEdge
           */ foreach ( $ start -> incoming_edges as $ edge ) { $ this -> getPathsRecursion ( $ edge -> get_source ( ) , $ edge ) ; //remove the item that was added by the child array_pop ( $ this -> current_path ) ; } }
docstring: Recurse on all paths from the start point
  
  @param Vertex $start The Vertex to get started from
  @param DirectedEdge $edge
docstring_tokens: Recurse on all paths from the start point