public function getPath( $source, $target, $stack = false )
	{
		if( $this->isEdge( $source, $target ) )
		{
			if( $stack && is_a( $stack, "stack" ) )
				$way = $stack;
			else $way = new ADT_List_Stack();
			$way->push( $target );
			return $way;
		}
		$nodes = $this->getTargetNodes( $source );
		foreach( $nodes as $node )
		{
			$way = $this->getPath( $node, $target, $stack );
			if( $way )
			{
				$way->push( $node );
				return $way;
			}
		}
		return false;
	}