gsql
CREATE QUERY shortestPath(VERTEX<src> FROM :start TO :end) FOR GRAPH MyGraph {
SetAccum<EDGE> @@path = {start};
SetAccum<VERTEX> @@visited = {start};
while @@path.size() > 0 DO
StartAccum<EDGE> @@nextPath = SELECT s FROM @@path:1-(e)-:s WHERE s NOT IN @@visited;
@@path += @@nextPath;
@@visited += @@nextPath.s;
IF @@nextPath.s == :end THEN
PRINT @@nextPath;
END;
END;
}