private void removeNodeCompletely( Node<K, V> node, boolean disposeGroupIfEmpty ) {
        removeNodeHash( node );
        removeNodeAll( node );
        removeNodeGroup( node.mGroup, node );

        if( disposeGroupIfEmpty && node.mGroup.mRoot == null ) {
            removeGroupNode( node.mGroup );
        }
    }