Don't use the Hash constructor if there's only one field

This test case is probably why Struct does not define a constructor taking a Hash. The fix makes it OK in the most common case but is not 100% bulletproof.