Configurable Separator
I'm wondering if you'd be open to a configurable separator. I'd offer a pull request on 2.X non-BC breaking, which is what we're currently using, for a 2.5 version. While we don't have a preference I could see this working two different ways or both:
Idea # 1:
Given I can flatten('_') it seems I should also be able to do something like set($key, $value, '_') ... adding an optional $separator parameter to effectively any method interface that allows you to do notation parsing.
Idea # 2:
At least creating an internal $separator property, and having a general setSeparator() property which would allow for changing it and/or temporarily changing it and changing it back as needed.
Idea # 3:
A combination of both where instead of setSeparator() it's setDefaultSeparator() and you're still able to overload on a per method call basis.
If this is something you're open to, let me know and I'll get in a pull request. Again, our concern is on the 2.X version, but if you want to make the equivalent change on 3.X it should be pretty easy based on the pull request.