This will want to be documented: a router implementation cannot assume that all routed messages are properly recorded (since we create a new instance here and messages going through between the copying and the write-back will be routed by the old instance and not seen by the new).