private FriendlyMessage?EvaluatePattern(IFriendlyMessagePattern pattern)
        {
            try
            {
                if (pattern.IsMatch(_part))
                {
                    foreach (var subPattern in pattern.SubPatterns)
                    {
                        var message = EvaluatePattern(subPattern);

                        if (message != null)
                        {
                            return(message);
                        }
                    }

                    var formattedMessage = FriendlyMessageFormatter.GetString(pattern.TryGetFriendlyMessage(_part), _context.EvaluatedExpressions);

                    return(new FriendlyMessage(formattedMessage, pattern));
                }
            }
            catch
            {
                return(null);
            }

            return(null);
        }