also to say is that -generically- data matching ignores the path of the data trees and just matches the branches 1:1, like this:
paths.gh (18.4 KB)
as you can see, the result is correct regardless of the “address” (path) of each branch: first item of A with first item of B, second with second and so on
the only real difference is in the data structure that gets inherited by the output data tree, and you can chose wether to inherit A or B by activating the “Principal” option on its input
this might look like a very silly thing, but once I got it I started using Trim Tree less and less, in exchange for grafting, which just makes things faster and life easier

