this does a linear search in a linked list. not that fastest thing on earth :D
You could return the end() iterator on register to the ContextDependant and it could issue it's deletion with this iterator which will result in a deletion in constant time