When you ask Solve to solve a system of (linear) equations for a set of variables whose number is greater than than the number of variables that can be determined from the equations, it will tell you it can't solve for all variables (with the Solve::svars message).

My question is: in cases like this, how does Solve determine which variables to solve for?

The ordering of the variables seems to matter, e.g. Solve[eq,list] solves for different variables than Solve[eq,Reverse[list]]. But knowing the algorithm used would be really helpful.Thanks!