Add support for custom assignment characters (resolves #6).

* Fix issues with the `internals.custom()` function.
* Add missing edge-case test.
* Add custom assignment implementation.