private static bool CanRemoveTagWithoutContent(HtmlTag tag)
{
string tagNameInLowercase = tag.NameInLowercase;
HtmlTagFlags tagFlags = tag.Flags;
IList<HtmlAttribute> attributes = tag.Attributes;
return !(tagFlags.HasFlag(HtmlTagFlags.Custom)
|| (tagFlags.HasFlag(HtmlTagFlags.Xml) && tagFlags.HasFlag(HtmlTagFlags.NonIndependent))
|| _unremovableEmptyTags.Contains(tagNameInLowercase)
|| attributes.Any(a => IsCustomAttribute(a)
|| (_unremovableEmptyTagAttributes.Contains(a.NameInLowercase) && !string.IsNullOrWhiteSpace(a.Value))));
}