A number of minor nits, like the container being not assignable because it has a reference member. Otherwise solid. No reason not to make it bidirectional, though.
However, I object to making the end iterator a part of the cycle. It's error-prone and defeats most use cases of a circular list.