Let $G$ be a simple graph and denote by $\tau(G)$ the number of spanning trees of $G$.
There are many results related to $\tau(G)$ for certain types of graphs. For example one of the prettiest (to me) is that if $C_n^2$ denotes the square of a cycle, then
$$\tau(C_n^2) = n f_n^2$$
where $f_n$ is the $n$'th Fibonacci number.
What I am wondering is if there are any known applications (practical and theoretical) of knowing $\tau(G)$ for certain graphs?
Belief propagation on random fields, a technique used to calculate the marginals of a distribution in applications such as image processing, comes in handy when the graph represented by the random field is not complicated (with less cycles, average degrees, etc.). So far, we know that the solutions from belief propagation are exact if the underlying graph is a tree (not loopy).
I have seen some work that try to reduce complex graphs into their spanning trees to do exact inference while keeping the important properties of the original graph. So the number of spanning trees may tell something about the likelihood of a certain random field being able to be efficiently sparsified for approximate marginal solutions.