A bit refactoring, added regular expression support on tags, optimized node save if the creation/deletion action has no effect