Fixes #925, undef not working in some cases.
Main issue was that previous fix in #408 was incomplete and masked by the off by one defQueue concat, which placed the new definition above the old one in the case that defQueue length was 1. This was just bad in general and a mistake in understanding the splice API. It worked out in general since module defines at this edge condition are usually OK but technically this was incorrect, and the undef use case highlighted this issue.
rev version to indicate a dev version in between releases
Relates to #925, additional test to confirm fix