Support array / hash in DSL
Remove unused code and handle incomplete hash / array object correctly
Add RSpec and several specs