It appears that when I use EdgeContract on an undirected graph, the vertex that is the result of contracting an edge is always named the smaller of the two vertices. So
VertexList@EdgeContract[g, UndirectedEdge[1,3]]
will no longer contain the vertex 3. Is it guaranteed anywhere in the Mathematica documentation that this will always be the behavior of EdgeContract (at least on an undirected graph where we contract a single vertex)? I couldn't find any mention of this on the documentation page for EdgeContract. I would hate to be surprised by some subtly in how EdgeContract is implemented where it renames the vertices some other way.

