Question: I know it's possible with the `enumitem` package, to modify the list label to a custom format.
I've hacked together solutions to a couple of other questions I found on StackExchange to give me the 'solution' below.
Whilst it's the output I want, the code in the preamble is not very concise.

Is it possible do the same thing (or similar) using only the `\newlist` and `\setlist` commands from `enumitem` (and any other commands from `enumitem` I might need)?

![Result of compiling the code below](https://i.stack.imgur.com/IUcd9.jpg)

```
\documentclass[a4paper,10pt]{article}

\usepackage{enumitem}

\newcommand{\changeitem}{%
  \let\latexitem\item
  \renewcommand\item[1][]{\latexitem\relax{##1 --} }%
}

\newlist{steps}{enumerate}{1}
\setlist[steps]{label=\textit{Step \arabic*:},leftmargin=*}

\newenvironment{labelledsteps}[1][]
  {\begin{steps}[before=\changeitem,#1]}
  {\end{steps}}

\begin{document}

\begin{labelledsteps}
  \item[First Label]  First list item \newline
                      Still first list item
  \item[Second Label] Second list item
  \item[Third Label]  Third list item
\end{labelledsteps}

\end{document}

```

Answer: 
How about this code, using `xparse` and, incidentally, `xspace`:

```
\documentclass[a4paper,10pt]{article}

\usepackage{enumitem}
\usepackage{xspace}
\usepackage{xparse}
\DeclareDocumentCommand\newstep{o}{%
\item\IfNoValueTF{#1}{}{#1 \textendash\xspace}}

\newlist{steps}{enumerate}{1}
\setlist[steps]{label=\textit{Step \arabic*:},leftmargin=*}

\begin{document}

\begin{steps}
    \newstep[First Label] First list item \newline
                      Still first list item
    \newstep[Second Label] Second list item
    \newstep[Third Label] Third list item
    \newstep A Fourth list item without a label.
\end{steps}

\end{document} 

```

![enter image description here](https://i.stack.imgur.com/UkYt9.png)
Here is an alternative using no packages. The upside is that there is nothing you can't change. The downside is that it is only one layer deep (no subitems).

```
\documentclass[a4paper,10pt]{article}

\newcounter{steps}

\newcommand{\step}[1][\empty]% #1 = label (optional)
{\stepcounter{steps}%
 \par
 \hangindent=4em
 \hangafter=1
 \makebox[4em][l]{\textit{Step \arabic{steps}:}}%
 \ifx#1\empty\else #1 --\fi
}
\newenvironment{labelledsteps}%
{\setcounter{steps}{0}%
 \let\item=\step
 \parskip=\baselineskip
 \parindent=0pt}%
{\par}

\begin{document}

\begin{labelledsteps}
  \item[First Label]  First list item \newline
                      Still first list item
  \item[Second Label] Second list item
  \item[Third Label]  Third list item
  \item No label
\end{labelledsteps}

\end{document}

```

![step item](https://i.stack.imgur.com/Nqn0r.png)