Implement :accepts option, ref #1310

ref #1310 
I've implemented an :accepts option, but it's very simple.
If this isn't good enough, please give me opinion, or push the commits to this branch.