Can we reduce any well-known problems to deciding whether a (possibly non-bipartite) graph $G$ has a perfect matching? I'm particularly interested in finding a reduction from deciding whether a collection of linear equations over $\mathbb{F}_{p}$ is satisfiable to deciding whether there is a perfect matching in a graph.
I'm aware that there are polynomial time algorithms for the perfect matching problem, and so I'm happy to allow even exponential-time reductions.
Edit: a clarification on the exponential-time reduction. I suppose what I'm really interested in is a sort of "embedding" of linear equations into perfect matchings. I.e., given some collection $\mathcal{C}$ of linear equations over $\mathbb{F}_{p}$ with variables $x_{i}$, construct (in any amount of time) a graph $G_{\mathcal{C}}$ such that if $G_{\mathcal{C}}$ has a perfect matching then we can construct assignments to $x_{i}$ to satisfy $\mathcal{C}$ efficiently (say, each $x_{i}$ can be log-space constructed from the perfect matching).
E.g., It is okay to reduce $\mathcal{C}$ to an exponential-sized graph $G_{\mathcal{C}}$ as long as I can express $x_{i}$ as some nice algebraic function, for example, of matched vertices.