3 added 7 characters in body
source | link

Python 3, 7976 bytes

lambda a,b:f(*a)==f(*b)
f=lambda f,*r:[f]+[k[f+k.lower()for k in r if if~-(k not in'-_']_')]

Try it online!Try it online!

-1 byte thanks to notjagan for the cool * trick.
-3 bytes thanks to Wheat Wizard

Python 3, 79 bytes

lambda a,b:f(*a)==f(*b)
f=lambda f,*r:[f]+[k.lower()for k in r if k not in'-_']

Try it online!

-1 byte thanks to notjagan for the cool * trick.

Python 3, 76 bytes

lambda a,b:f(*a)==f(*b)
f=lambda f,*r:[f+k.lower()for k in r if~-(k in'-_')]

Try it online!

-1 byte thanks to notjagan
-3 bytes thanks to Wheat Wizard

2 added 53 characters in body
source | link

Python 3, 8079 bytes

lambda a,b:f(a*a)==f(b*b)
f=lambda sf,*r:[s[0]]+[k[f]+[k.lower()for k in s[1:]ifr if k not in'-_']

Try it online!Try it online!

-1 byte thanks to notjagan for the cool * trick.

Python 3, 80 bytes

lambda a,b:f(a)==f(b)
f=lambda s:[s[0]]+[k.lower()for k in s[1:]if k not in'-_']

Try it online!

Python 3, 79 bytes

lambda a,b:f(*a)==f(*b)
f=lambda f,*r:[f]+[k.lower()for k in r if k not in'-_']

Try it online!

-1 byte thanks to notjagan for the cool * trick.

1
source | link

Python 3, 80 bytes

lambda a,b:f(a)==f(b)
f=lambda s:[s[0]]+[k.lower()for k in s[1:]if k not in'-_']

Try it online!