  Path queries are a core feature of modern graph query languages such as
Cypher, SQL/PGQ, and GQL. These languages provide a rich set of features for
matching paths, such as restricting to certain path modes (shortest, simple,
trail) and constraining the edge labels along the path by a regular expression.
In this paper we present PathFinder, a unifying approach for dealing with path
queries in all these query languages. PathFinder leverages a compact
representation of the (potentially exponential number of) paths that can match
a given query, extends it with pipelined execution, and supports all commonly
used path modes. In the paper we describe the algorithmic backbone of
PathFinder, provide a reference implementation, and test it over a large set of
real-world queries and datasets. Our results show that PathFinder exhibits very
stable behavior, even on large data and complex queries, and its performance is
an order of magnitude better than that of many modern graph engines.
