/** * @param string $key * @param int $val * @param Route $route */ private function _tryRouteViaValue($key, $val, Route $route = null) { if (!$route) { $route = new Route(); } $parts = explode(',', $key); $node = Node::factory((int) $parts[0], (int) $parts[1], $val); $route->addNode($node); //unset($this->_sortedValues[$key]); $neighbours = $this->_getSuitableNeighbours($node); if (!$neighbours) { $this->_addRoute($route); } else { foreach ($neighbours as $nextKey => $neighbour) { $routeClone = clone $route; $this->_tryRouteViaValue($nextKey, $neighbour, $routeClone); } } }