# [Python 3], <s>83</s> 81 bytes

<!-- language-all: lang-python -->

    lambda a,b,c,d:g(*a)+g(*b)+c[0]+"-"+d[2:]
    g=lambda c,*s:c[:c in"aeiou"]or c+g(*s)

[Try it online!][TIO-k7xspzgu]

[Python 3]: https://docs.python.org/3/
[TIO-k7xspzgu]: https://tio.run/##ZY/BioMwEIbvPkXISeukRLtQFOyLuB7GJLoBTSSJhbLss7uxtexhL3P4/u8fZpZH@LLmsg3N5zbh3EskCD0IkPWYnjDL4@yzXLS8yymjuWzLukvG5nAFnHwt2loQbSgqbVfaWUfEXvPZpufFukD8wyfJEPmkjYrmDs4@SG3qhBAPjjRkxiX1wUXs9AJP8@yXSYeUshvNsigeh/2X/duEl@iUj9KQHoUdLU6b8Aawr4S/HAbafsdS07ifjmabsM4ahLt2qwepvUKvoORFRdiNCHvXkhVVIuy8rEE5QCm1CNoa8A8jnZ0VFNWVv2T07MqjKxWMdhpgWE1cVR7paAdW8iQegiAQivLysQfYo2CXjyQ4pWB/0owgnMKgoOL82Y3RHgjG@S8 "Python 3 – Try It Online"
*-2 bytes thanks to @JonathanAllan!*

### Explanation:
`g` is a recursive function that takes in a splatted string and return the string, truncated after the first vowel.

- `lambda c,*s` gather the splatted string into the first character `c` and the rest `s`.
- `c[:c in"aeiou"] or c+g(*s)` evaluates to:
  + if `c` is a vowel, then `c[:c in"aeiou"]` evaluates to `c[:1]` which is `c`. Since `c` is Truthy, it is returned.
  + if `c` is not a vowel, then `c[:c in"aeiou"]` evaluates to `c[:0]` aka the empty string. The empty string is Falsy, so `c+g(*s)` (the recursive case) is returned.

<br>
**Old solution, kept here for sentimental reason**
### [Python 3], 89 bytes

<!-- language-all: lang-python -->

    lambda a,b,c,d:g(a)+g(b)+c[0]+"-"+d[2:]
    g=lambda s:s[:[x in"aeiou"for x in s].index(1)+1]

[Try it online!][TIO-k7xstsv6]

[Python 3]: https://docs.python.org/3/
[TIO-k7xstsv6]: https://tio.run/##Zc/PboQgEAbwu09BOGkcNuhu0mjivoj1gICWRMEwuFnT9Nkt7p/00CPf95vJsGzhy9nzPjSf@yTmXgkioAcJqh5TkeVj2me5bHmXU0Zz1ZZ1l4zNS2KNbd3eibFUaONWOjhPjifB7mSs0ve0yPKi2828OB8Ibpgkh5mM1Q@24QmDMrZOCEHwpCGzWFIMPsbeLPCQJ1wmE1LKrjTLInwd@B/jW8ITeo0RDelr4IgWb2x4B3CshL8eBtp@x6Gm8T8dzXbpvLMCbsavCMqgFqih5EVF2JVIdzOKFVUi3bysQXsQShkZjLOAm1XezRqK6oM/sUD2waNVGkY3DTCsNq4qX@3oBlbyJB4iQAooyvPlKEQvJDtfkuC1huOTdgTptQgaKs4fs7E6Csk4/wU "Python 3 – Try It Online"