Fixed some problems with recursive defaults.  Added tests so it doesn't happen again.