Our "cut" operation will break a preferred path into two parts at a given node, a top part and a bottom part. More formally, it'll partition an auxiliary tree into two auxiliary trees, such that one contains all nodes at or above a certain depth in the reference tree, and the other contains all nodes below that depth. As in "join", note that the top part has two nodes that bracket the bottom part. Thus, we can simply "split" on each of these two nodes to divide the path into three parts, then "concatenate" the two outer ones so we end up with two parts, the top and bottom, as desired.