Added state object argument; match-all state; accepting custom state handlers
Added gitignore