Fix config getting merged across hasOne/hasMany subroutes

Not super excited about my tests for this, seemed a bit weird to add a whole other set of data just for one test, but I figured I'd commit anyway and we can discuss.

Basically because merge instead of applyDefaults was being used, if you had multiple hasOne configs on a route, the first one's config got merged up into the parent, and the second then inherited the config of the first.